If vTLB area is not able to allocate with shortage of domheap,
Xen does a panic for double free of VHPT.
At first:
vmx_final_setup_guest()
-> init_domain_tlb()
-> free_domain_vhpt()
At second:
free_domain()
-> vcpu_destroy()
-> vmx_relinquish_vcpu_resources()
-> free_domain_tlb()
-> free_domain_vhpt()
This patch avoids double free of VHPT by clearing v->arch.vhpt.hash
in free_domain_vhpt().
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
if (v->arch.vhpt.hash) {
page = virt_to_page(v->arch.vhpt.hash);
free_domheap_pages(page, VCPU_VHPT_ORDER);
+ v->arch.vhpt.hash = 0;
}
return;